'use strict';
module.exports = app => {
    const { STRING, INTEGER, TINYINT } = app.Sequelize;
    const Model = app.model.define(
        'device',
        {
            id: {type: INTEGER, primaryKey: true, autoIncrement: true},
            /**
             * `devno` varchar(20) DEFAULT NULL COMMENT '设备编号',
             *   `devname` varchar(20) DEFAULT NULL COMMENT '设备名',
             *   `company` int DEFAULT NULL COMMENT '所在公司（这个添加设备的时候可以用，在有设备还没有安排圈舍的时候',
             *   `farmview` int DEFAULT NULL COMMENT '公司圈舍，设备位置',
             *   `devType` varchar(20) DEFAULT NULL COMMENT '设备类型（温度、湿度）等，需要列个字典',
             *   `devfunc` varchar(300) DEFAULT NULL COMMENT '功能',
             *   `buyTime` date DEFAULT NULL COMMENT '购入时间',
             *   `manuf` varchar(100) DEFAULT NULL COMMENT '厂商',
             *   `remark` varchar(200) DEFAULT NULL COMMENT '备注',
             *   `version` int DEFAULT '1',
             *   `is_deleted` tinyint(1) DEFAULT '0',
             */
            devno: { type: STRING(20), allowNull: true, comment: '设备编号' },
            devname: { type: STRING(20), allowNull: true, comment: '设备名' },
            company: { type: INTEGER, allowNull: true, comment: '所在公司（这个添加设备的时候可以用，在有设备还没有安排圈舍的时候' },
            farmview: { type: INTEGER, allowNull: true, comment: '公司圈舍，设备位置' },
            devtype: { type: STRING(20), allowNull: true, comment: '设备类型（温度、湿度）等，需要列个字典' },
            devfunc: { type: STRING(300), allowNull: true, comment: '功能' },
            buytime: { type: STRING(20), allowNull: true, comment: '购入时间' },
            manuf: { type: STRING(100), allowNull: true, comment: '厂商' },
            remark: { type: STRING(200), allowNull: true, comment: '备注' },
            version: { type: INTEGER, allowNull: true, defaultValue: 1 },
            is_deleted: { type: TINYINT, allowNull: true, defaultValue: 0 },
            status: { type: TINYINT, allowNull: true, defaultValue: 1, comment: '设备状态 0 异常 1 正常' },
        },
        {
            tableName: 'device',
            timestamps: true, // 启用时间戳(createdAt, updatedAt)
            updatedAt: false, // 不想要 updatedAt
            createdAt: false, // 想要  createdAt 但是希望名称叫做 created_at
        }
    );
    Model.associate = function() {
        app.model.Device.belongsTo(app.model.Room, { foreignKey: 'farmview', targetKey: 'id' });
    }
    return Model
};
